With advance in information society, information security technologies for protecting information to be processed safely have become important. As one of the constituent elements of the information security technologies, there is an encryption technology. At present, the encryption technology has been sued in various products or systems.
There are various encryption processing algorithms. As one of the basic technologies, there is a technology called a common key block encryption. In the common key block encryption, a common key is used as a key for an encryption and a key for decryption. In both of an encryption process and a decryption process, a plurality of keys are generated from the common key. A data conversion process is repeatedly executed in certain units of blocks, e.g., units of block data of 64 bits, 128 bits, 256 bits, and the like.
As representative algorithms of common key block encryptions, there are known the previous American national standard, Data Encryption Standard (DES), and the present American national standard, Advanced Encryption Standard (AES). Other various common key block encryptions have been continuously suggested at present. CLEFIA which the Sony Corporation suggested in 2007 is also one of the common key block encryptions.
As a technology of the related art which discloses the common key block encryption, for example, there is PTL 1 (Japanese Unexamined Patent Application Publication No. 2012-215813).
Such an algorithm of a common key block encryption mainly includes: an encryption processing unit that has a round function execution unit repeatedly executing input data conversion; and a key schedule unit that generates a round key to be applied at each round of the round function unit. The key schedule unit first generates an expanded key which increases the number of bits based on a master key (main key) which is a secret key and generates a round key (sub-key) to be applied to each round function unit of the encryption processing unit based on the generated expanded key.
As a specific structure executing such an algorithm, there is an existing a structure repeatedly executing the round function which includes a linear conversion unit and a nonlinear conversion unit. For example, as representative structures, there are a Substitution-Permutation Network (SPN) structure, a Feistel structure, an expanded Feistel structure, and the like.
Such algorithms all have structures that repeatedly execute the round functions including the linear conversion unit and the nonlinear conversion unit and convert plain text into cipher text.